home *** CD-ROM | disk | FTP | other *** search
/ JCSM Shareware Collection 1993 November / JCSM Shareware Collection - 1993-11.iso / cl720 / fast278j.lzh / FSET.F < prev    next >
Text File  |  1980-01-01  |  4KB  |  185 lines

  1.  
  2. ;== FAST, SOFA & FFD Setup Utility for Public Domain =======================
  3.  
  4. files ? 13*100
  5. var bs
  6.  
  7. #short
  8. if mono and (screen<>7) then screen 7
  9. if not mono and (screen<>3) then screen 3
  10.  
  11. m=81h
  12. drive='C'
  13. while peekb m<>13
  14.     {
  15.     if peekb m=':' then drive=ucase peekb (m-1)
  16.     m++
  17.     }
  18. #long
  19. if (drive<'A') or (drive>'Z') then
  20.     {
  21.     print bios "To use the FSET utility enter 'FSET d:' d is the desired drive letter"
  22.     print bios "Type just FSET for the default drive C"
  23.     beep
  24.     stop
  25.     }
  26. #short
  27. for a=data1 to data2-1
  28. if peekb a='?' then pokeb a,drive
  29. next a
  30. drive-='A'
  31.  
  32. on error
  33.     {
  34.     pop ath
  35.     cursor 19,0
  36.     error msg "\dos.err":printh bios "! Address=";ath
  37.     beep:stop
  38.     }
  39. on break error 999
  40.  
  41. function yesno
  42.     {
  43.     forever
  44.     {
  45.     kk=lcase key
  46.     if kk='y' then print bios "yes":return 1
  47.     if kk='n' then print bios "no":return 0
  48.     }
  49.     }
  50.  
  51. proc header
  52.     {
  53.     cls:locate 0,0
  54.     repeat 80 print chr 205;
  55.     locate 1,12
  56.     print "Setup Utility 1.1 - (C) PETER CAMPBELL SOFTWARE May 1989."
  57.     repeat 80 print chr 205;
  58.     print cr
  59.     }
  60.  
  61. proc setup(sa)
  62.     {
  63.     header
  64.     print "Do you wish to install ";
  65.     prints sa,0
  66.     sa=1+searchb 1000 from sa for 0
  67.     print "? (y/n) ";:loctocur
  68.     print cr cr
  69.  
  70.     push sa,locpos
  71.     print "Create Directory: ";:sa=printm sa,20:print cr
  72.     while peekb sa
  73.     {
  74.     print "Copy file(s) ";:sa=printm sa,15:locpos+=30:print "-> ";
  75.     sa=printm sa,20:print
  76.     }
  77.     pop locpos,sa
  78.  
  79.     #long
  80.     if yesno then
  81.     {
  82.     #short
  83.     colour 15
  84.     print "Create Directory: ";:na=printm sa,20:print cr
  85.     #errors off
  86.     make dir sa:sa=na
  87.     #errors on
  88.     if error then if error<>5 then error
  89.  
  90.     while peekb sa
  91.         {
  92.         print "Copy file(s) ";:f1=printm sa,15:locpos+=30:print "-> ";
  93.         f2=printm f1,20:print
  94.         moveb 10 from sa to source+2
  95.         moveb 10 from f1 to dest
  96.         sa=f2:f2=searchb 15 from dest for 0
  97.  
  98.         flm=files:flc=0
  99.         find first source:goto fentry
  100.         forever
  101.         {
  102.         #errors off
  103.         find next
  104.         #errors on
  105.         fentry:
  106.         if error then goto fstart
  107.         moveb 13 from dta segment|dta offset+30 to flm
  108.         flm+=13:flc++
  109.         }
  110.  
  111.         fstart:
  112.         flm=files
  113.         repeat flc
  114.         {
  115.         moveb 13 from flm to source+2
  116.         moveb 13 from flm to f2
  117.         open #1,source:create #2,dest
  118.         rlen=1
  119.         while rlen
  120.             {
  121.             rlen=read #1,65530 to bs|0
  122.             write #2,rlen from bs|0
  123.             }
  124.         close #1,#2
  125.         flm+=13
  126.         }
  127.         }
  128.  
  129.     colour 7
  130.     }
  131.  
  132.     }
  133.  
  134. ;== Start ==================================================================
  135.  
  136. bs=allocate 4096    ;Segment for buffer.
  137. pokeb source,cdisk+'A'
  138.  
  139. setup(s_fast)
  140. setup(s_sofa)
  141. setup(s_ffd)
  142.  
  143. header
  144. print "Now PRINT the file PCS for news, registration and upgrade details." cr
  145. loctocur
  146. stop
  147.  
  148. ;== Data ===================================================================
  149.  
  150. data1:
  151.  
  152. s_fast:
  153. datab 'FAST, the compiler for a completely new language     specifically designed for the PC',0
  154. datab '?:\FAST',0
  155. datab 'SFAST.BAT' ,0,'?:\',0
  156. datab 'UNFAST.EXE',0,'?:\FAST\',0
  157. datab '*.ERR'      ,0,'?:\',0
  158. datab '*.HLP'      ,0,'?:\',0
  159. datab 0
  160.  
  161. s_sofa:
  162. datab 'SOFA, a 1000 lps assembler for the PC (CHASM 4.0 compat.)',0
  163. datab '?:\ASM',0
  164. datab 'SSOFA.BAT' ,0,'?:\',0
  165. datab 'UNSOFA.EXE',0,'?:\ASM\',0
  166. datab 0
  167.  
  168. s_ffd:
  169. datab 'FFD, an EASY TO USE FREE FLOW DATABASE with complete helpfor FAST as a demo'
  170. datab ' database',0
  171. datab '?:\FFD',0
  172. datab 'SFFD.BAT' ,0,'?:\',0
  173. datab 'UNFFD.EXE',0,'?:\FFD\',0
  174. datab '*.ERR'     ,0,'?:\',0
  175. datab 0
  176.  
  177. data2:
  178.  
  179. source:
  180. datab 'A:'
  181. space 20
  182.  
  183. dest:
  184. space 30
  185.